$(function(){
	 $.ajaxSetup({cache:false});//ajax调用不使用缓存
	//JQeury插件主页面框体显示
	$("#methodList").jqGrid({
	   	url:'method.do?type=list',
	   	height:450,   	
		datatype: "xml",
	   	colNames:['系统编号','编码','名称'],			
	   	colModel:[
	   	          	{name:'id', width:100,xmlmap:'id'},	
	   	          	{name:'num', width:100,xmlmap:'num'},
	   	          	{name:'name', width:100,xmlmap:'name'}
	   	],
	   	xmlReader:{
	   		repeatitems:false
	   	},
	   	pager: $('#methodPager'),
	   	pgbuttons: false,
		pginput: false,
	   	rowNum:50,
	   	autowidth: true,
	   	sortname: 'id',
	    viewrecords: true,
    	caption:"系统方法列表",
    	gridComplete:function(){
    		resizeJQGrid({jqGrid:this.id,userData:false});
    	}
	}).navGrid('#methodPager',{edit:false,add:false,del:false,refresh:false,search:false});//.navButtonAdd("#methodPager",{
//			caption : "删除",
//			title: '删除所选择记录',
//			buttonicon : 'ui-icon-trash',
//			onClickButton:processDelete,
//			position : "first",
//			cursor : 'pointer'
//	}).navButtonAdd("#methodPager",{
//			caption : "编辑",
//			title: '查看所选择记录明细',
//			buttonicon : 'ui-icon-pencil',
//			onClickButton:processEdit,
//			position : "first",
//			cursor : 'pointer'
//	}).navButtonAdd("#methodPager",{
//			caption : "新增",
//			title: '增加新记录',
//			buttonicon : 'ui-icon-plus',
//			onClickButton:processAdd,
//			position : "first",
//			cursor : 'pointer'
//	});
	
	if(p_delete){
		$("#methodList").navButtonAdd("#methodPager",{
				caption : "删除",
				title: '删除所选择记录',
				buttonicon : 'ui-icon-trash',
				onClickButton:processDelete,
				position : "first",
				cursor : 'pointer'
		});
	}
	
	if(p_update){
		$("#methodList").navButtonAdd("#methodPager",{
			caption : "编辑",
			title: '编辑所选记录',
			buttonicon : 'ui-icon-pencil',
			onClickButton:processEdit,
			position : "first",
			cursor : 'pointer'
		});
	}
	
	if(p_add){
		$("#methodList").navButtonAdd("#methodPager",{
			caption : "新增",
			title: '增加新记录',
			buttonicon : 'ui-icon-plus',
			onClickButton:processAdd,
			position : "first",
			cursor : 'pointer'
		});
	}
	
	if(false){
		$("#methodList").navButtonAdd("#methodPager",{
			caption : "查找用户",
			title: '查找用户',
			buttonicon : 'ui-icon-search',
			onClickButton:processSearch,
			position : "first",
			cursor : 'pointer'
		});
	}
	
	//增加窗口的初始化
	$("#detailDialog").dialog({
		bgiframe: true,
		autoOpen:false,
		width:310,
		stack:false,
		modal:true,
		position:'center',			
		title:'详细信息',
		buttons:{"取消":function(){$("#detailDialog").dialog("close");},"保存":updateMethod,"增加": addMethod},
		open:function(){
			$("#detailDialog").parent().find(".ui-dialog-buttonpane button:visible").focus();
		}	
	});
	
	//功过功能查找用户窗口初始化
	$("#search").dialog({
		bgiframe: true,
		autoOpen:false,
		width:700,
		stack:false,
		modal:true,
		position:'top',			
		title:'详细信息',
		buttons:{"关闭":function(){$("#search").dialog("close");}}
	});
});

//通过功能查找用户
function processSearch(){
	//选择一行作为焦点并且获取当前行的id
	var selectRow = $("#methodList").getGridParam("selrow");

	if(!selectRow){
	 	//警告对话框的初始化
 		var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'};
 		viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+"priceItemList",jqm:true}); 
 		$("#jqg_alrt").focus();
 		return;
	}
	
	$("#search").dialog("open");
	
	jQuery("#searchList").jqGrid({
	   	url:'method.do?type=searchUserList&methodId=' + selectRow,
	   	height:350,
	   	
		datatype: "xml",
	   	colNames:[ '系统ID', '工号','姓名','职位','管理架构编号','管理架构','状态','电话','QQ'],
	   	colModel:[
	   				{name:'opID',index:'opID', width:100,xmlmap:'opID'},
	   				{name:'opWorkno',index:'opWorkno', width:100,xmlmap:'opWorkno'},
	   				{name:'opName',index:'opName', width:100,xmlmap:'opName'},
	   				{name:'opJob',index:'opjob', width:100,xmlmap:'opJob'},
	   				{name:'opSmfID',index:'opSmfID', width:100,hidden:true,xmlmap:'opSmfID'},
	   				{name:'opSmfName',index:'opSmfName', width:100,xmlmap:'opSmfName'},
	   				{name:'opStatus',index:'opStatus', width:100,xmlmap:'opStatus'},
	   				{name:'opTel',index:'opTel', width:100,xmlmap:'opTel'},
	   				{name:'opQQ',index:'opQQ', width:150, sortable:false,xmlmap:'opQQ'}		
	   	],
	   	xmlReader:{
	   		repeatitems:false
	   	},
	   	rowNum:10,
	   	autowidth: true,
	   	rowList:[10,20,30],
	   	pager: jQuery('#searchPaper'),
	   	sortname: 'id',
	    viewrecords: true,
	    sortorder: "desc",  
    	caption:"系统操作人员列表" //用add、modify等布尔值的属性直接控制新增，编辑。如果采用了‘修改密码’那种方式则不能直接用变量控制
	});

}

//增加窗口的显示
function processAdd(){
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('增加')").show();
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('取消')").show();
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('保存')").hide();
	//窗口弹出
	$("#detailDialog").dialog("open");
	//为Id增加只读属性
	$("#ID").attr("readonly","readonly");
	$("#ID").css("background-color","#BBBBBB");
	//清楚编码和名称和id缓存
	$("#ID").val("");
	$("#num").val("");
	$("#name").val("");
	//获取ID值
	$.post(
		"method.do?type=getMethodId",
		function(html){
			$("#ID").val(html);
		},"html"
	);
}

//增加窗口中数据新增保存
function addMethod(){
	if(!check()){
		return;
	}
	
	$.post(
		"method.do?type=addMethod",
		{
			id:$("#ID").val(),
			num:$("#num").val(),
			name:$("#name").val()
		},function(xml){
			var flag = $(xml).find("flag").text();
			var body = $(xml).find("body").text();
			if(flag == "1"){
				var dataRow = {
					id:$("#ID").val(),
					num:$("#num").val(),
					name:$("#name").val()
				}
				$("#methodList").addRowData($("#ID").val(),dataRow);
				alert("新增成功");
				$("#detailDialog").dialog("close");
			}else{
				alert(body);
			}
		},"xml"
	);
}

//编辑窗口的显示
function processEdit(){
	//选择一行作为焦点并且获取当前行的id
	var selectRow = $("#methodList").getGridParam("selrow");

	if(!selectRow){
	 	//警告对话框的初始化
 		var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'};
 		viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+"priceItemList",jqm:true}); 
 		$("#jqg_alrt").focus();
 		return;
	}
	
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('增加')").hide();
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('取消')").show();
	$("#detailDialog").parent().find(".ui-dialog-buttonpane button:contains('保存')").show();
	//窗口弹出
	$("#detailDialog").dialog("open");
	//为Id增加只读属性
	$("#ID").attr("readonly","readonly");
	$("#ID").css("background-color","#BBBBBB");
	//获取某一行的数据对象
	var obj = $("#methodList").getRowData(selectRow);
	//从obj对象中拿到该列上对应的字段值
	$("#ID").val(obj.id);
	$("#num").val(obj.num);
	$("#name").val(obj.name);
}

//编辑窗口中更新数据
function updateMethod(){
	//验证表单
	if(!check()){
		return;
	}
	//表单中拿到数据后向服务器发送请求更新
	$.post(
		"method.do?type=updateMethod",
		{
			id:$("#ID").val(),
			num:$("#num").val(),
			name:$("#name").val()
		},function(xml){
			var flag = $(xml).find("flag").text();
			var body = $(xml).find("body").text();
			if(flag == "1"){
				var selectRow = $("#methodList").getGridParam("selrow");
				//拿到表单中更新的数据并保存在一个数组中				
				var dataRow = {
					id:$("#ID").val(),
					num:$("#num").val(),
					name:$("#name").val()
				}
				//把数组中的内容更新到指定的表格行中selectRow为行ID，dataRow为行数据
				$("#methodList").setRowData(selectRow,dataRow);
				alert("更新成功");
				$("#detailDialog").dialog("close");
			}else{
				alert(body);
			}
		},"xml"
	);
}

//删除窗口的显示
function processDelete(){
	//选取删除行的id
	var selectRow = $("#methodList").getGridParam("selrow");
	if(!selectRow){
	 	//如果没有选择删除行则弹出警告对话框
 		var alertIDs = {themodal:'alertmod',modalhead:'alerthd',modalcontent:'alertcnt'};
 		viewModal("#"+alertIDs.themodal,{gbox:"#gbox_"+"priceItemList",jqm:true}); 
 		$("#jqg_alrt").focus();
 		return;
	}
	//警告是否确定删除，如确定则向服务器发送删除指令
	if(window.confirm("确认删除")){
		$.post(
			"method.do?type=deleteMethod",
			{
				id:selectRow
			},function(xml){
				var flag = $(xml).find("flag").text();
				var body = $(xml).find("body").text();
				if(flag == "1"){
					//根据行的id在表格中动态删除数据
					$("#methodList").delRowData(selectRow);
					alert("删除成功");
				}else{
					aler(body);
				}
			},"xml"
		);
	}
}

//编辑窗口、新增窗口的数据提交前的验证
function check(){
	var id = $("#num").val();//获取编码id
	var zz = /^[a-zA-Z|_]+$/;//编码判断的正则表达式
	//编码判断逻辑
	if(!id.match(zz)){
		alert("编码必须是为字母");
		return false;
	}
	
	//名称判断逻辑、$("#name")为取得名称的值
	if($.trim($("#name").val()).length == 0){
		alert("名称不能为空");
		return false;
	}else{
	}
	
	return true;
}